package com.xlh.virtualization.service;

/**
 * 虚拟化配置 Service
 *
 * @author cheer
 */
public interface ConfigService {

    /**
     * 查询系统容器自动销毁开关
     *
     * @return 如果开关打开返回true，否则返回false
     */
    Boolean getContainerDeletedSwitch();

    /**
     * 更新系统容器自动销毁开关
     *
     * @param switchOn 容器自动销毁开关
     */
    void updateContainerDeletedSwitch(Boolean switchOn);

    /**
     * 查询实验课程的容器自动销毁开关
     *
     * @param courseId 课程Id
     * @return 如果开关打开返回true，否则返回false
     */
    Boolean getCourseContainerDeletedSwitch(Long courseId);

    /**
     * 保存实验课程的容器自动销毁开关
     *
     * @param courseId 课程Id
     * @param switchOn 容器自动销毁开关
     */
    void updateCourseContainerDeletedSwitch(Long courseId, Boolean switchOn);

    /**
     * 查询实训的容器自动销毁开关
     *
     * @return 如果开关打开返回true，否则返回false
     */
    Boolean getTrainingContainerDeletedSwitch();

    /**
     * 更新实训的容器自动销毁开关
     *
     * @param switchOn 容器自动销毁开关
     */
    void updateTrainingContainerDeletedSwitch(Boolean switchOn);

    /**
     * 查询允许教师每门课程可创建的镜像数量
     *
     * @return 镜像数量
     */
    Integer getImageQuota();


    /**
     * 更新教师每门课程可创建的镜像数量
     *
     * @param imageQuota 镜像数量
     */
    void updateImageQuota(Integer imageQuota);
}
